Generally described, computing devices utilize a communication network, or a series of communication networks, to exchange data. Companies and organizations operate computer networks that interconnect a number of computing devices to support operations or provide services to third parties. The computing systems can be located in a single geographic location or located in multiple, distinct geographic locations (e.g., interconnected via private or public communication networks). Specifically, data centers or data processing centers, herein generally referred to as a “data center,” may include a number of interconnected computing systems to provide computing resources to users of the data center. The data centers may be private data centers operated on behalf of an organization or public data centers operated on behalf, or for the benefit of, the general public. To facilitate increased utilization of data center resources, virtualization technologies may allow a single physical computing device to host one or more instances of virtual machines that appear and operate as independent computing devices to users of a data center. With virtualization, a single physical computing device can create, maintain, delete, or otherwise manage virtual machines in a dynamic matter.
Regardless of whether virtualization technologies are utilized, users, via client computing devices, can transmit requests to computing devices, such as computing devices at data centers, to process data provided by, or on behalf of, the requesting client computing device, often referred to as a “Web service” or “service.” The client computing devices can typically request the processing of data (e.g., a “service request”) through the transmission of data that has been organized in accordance with a pre-established format, such as an Application Protocol Interface (“API”). For example, a user can access various data processing services via a browser-based software application hosted on the client computing device. Based on the information included in a client computing device service request, the receiving computing device processes the request and can return responsive data or confirm that the requested data processing has been completed. From the perspective of the user at the client computing device, the utilization of such services can provide the impression that the requested services are implemented on the client computing device.
In a typical embodiment, one or more third party service providers maintain various computing devices in a data center that process the client computing device service requests, generally referred to as hosts. Periodically, the third party service provider or data center provider may wish to implement updates, upgrades or other modifications to the software maintained by the hosts and utilized in conjunction with the processing of service requests. Despite substantial testing of any proposed updates, upgrades or modifications, any software modification to a service host may contain errors (e.g., “bugs”), some of which may be latent or not fully realized until the update, upgrade or modification has been implemented. However, the development or emergence of a software error once the software has been implemented across a fleet of hosts that provide a service can have a significant impact on the availability of the service and the potential damage caused to client computing devices or data associated with client computing devices.